// 发送ajax请求
/*
1.封装功能函数
 1.功能点明确
 2.函数内部应该保留固定代码
 3.将动态的参数抽取成形参，有使用者根据自身的情况动态的传入实参
 4.一个良好的功能函数应该设置形参的默认值(es6的形参默认值)

2.封装功能组件 
 1.功能点明确
 2.组件内部保留静态的代码
 3.将动态的参数抽取成props参数，由使用者根据自身的情况以标签属性的形式动态传入props数据 
 4.一个良好的组件应该设置组件的必要性以及数据类型 
    props:{
      msg:{
        required:true,
        default:默认值,
        type:String
      }
    }

 */
import config from './config'

export default (url, data = {}, method = 'GET') => {
  return new Promise((resolve, reject) => {
    wx.request({
      url: config.host + url,
      timeout: 5000,
      dataType: 'json',
      method,
      header: {
        cookie: wx.getStorageSync('cookies')
          ? JSON.parse(wx.getStorageSync('cookies')).find(item =>
              item.includes('MUSIC')
            )
          : '',
      },
      data,
      success(res) {
        if (data.isLogin) {
          wx.setStorageSync('cookies', JSON.stringify(res.cookies))
        }
        resolve(res.data)
      },
      fail(err) {
        reject(err)
      },
    })
  })
}
